Quantum Monte Carlo for Optimization

Quantum Monte Carlo methods were originally developed to solve the Schrödinger equation for many-body systems, which cannot be exactly solved by numerical means. While for simple systems, such as the Hydrogen atom, exact solutions can be calculated, the interaction terms prevent closed solutions for systems with more electrons starting with simple systems like the Helium atom. While mean-field approaches present one solution to the problem, a better way would be to calculate the particle-interations. QMC methods rely on Monte Carlo methods for integration to solve the high-dimensional integrals present in calculations of many-body systems.

Different approaches exist to apply Monte Carlo thechniques to quantum systems, here we discuss methods find the ground state wave function of a quantum systems. The variational Monte Carlo (VMC) approach uses a trial function with adjustable parameters to model the ground state wave function, optimizing the parameters with a Metropolis algorithm and calculating the integrals using Monte Carlo methods. The diffusion Monte Carlo (DMC) approach transforms the Schrödinger equation via imaginary time propagation into a diffusion equation, using a classical diffusion process and monte carlo walkers to calculate quantum mechanical properties.

Quantum Monte Carlo methods retrieve a wave function, the ground wave function, based on minimizing the energy as the optimization criterion. Thus, both algorithms are in principle suited for optimization purposes. The feasibility of applying VMC and DMC approaches to general optimization problems is investigated in the last part of this section.

Variational Monte Carlo

The variational theorem, eigenfunction of quantum mechanical problems are complete, any wave function $\Psi(x)$ can be expressed as a linear superposition

$$\Psi(x) = \sum_n c_n \psi_n(x)$$

with $c_n$ complex amplitudes. The average energy of a particle with a given Hamiltonian $H$ is calculated by

$$\left< E \right> = \frac{\int \mathrm dx \Psi^*(x)H\Psi(x) }{\int \mathrm dx\Psi^*(x)\Psi(x)}$$

There exists an energy $E_0$ such that $\left<E\right> \ge E_0$ for all $\Psi$ and $\left<E\right> = E_0$ for the ground state wave function $\Psi_0$.

The variational quantum monte carlo method now chooses a trial wave function $\Psi_\alpha$, which depends on the parameter $\alpha$. The expectation value of the energy $\left<E\right> = E_\alpha$ now depends on the parameter alpha, which can be varied to minimize $E_\alpha$. This energy then represents the best estimate for the ground state energy.


In [12]:
import numpy as np
import numpy.random as random

In [24]:
N = 10 # number of walkers
delta = 0.1 # step size

Observabes


In [32]:
energy = 0.0
energy_squared = 0.0
x = np.zeros((N,))
x_min = -10
x_max = 10
dx = 0.1
n_psi_squared = 10
psi_squared = np.zeros((n_psi_squared,))

In [53]:
x = random.uniform(-0.5, 0.5, (10,))
delta = 1
n_psi_squared = int((x_max - x_min) / dx)
psi_squred = np.zeros((n_psi_squared,))

In [ ]:
alpha = 0.5

In [54]:
def p(x_trial, x, alpha):
    return np.exp(-2 * alpha * (x_trial**2-x**2))

def energy(x, alpha):
    return alpha + x**2 * (0.5 - 2.0 * alpha**2)

Diffusion Monte Carlo

see next notebook